Configuration Parameters

Introduction

Dyalog APL is customised using a set of configuration parameters which are defined in a registry folder.

In addition, parameters may be specified as environment variables or may be specified on the APL command line.

Furthermore, you are not limited to the set of parameters employed by APL itself as you may add parameters of your own choosing.

Although for clarity parameter names are given here in mixed case, they are case-independent under Windows. Under UNIX and Linux, Dyalog parameters must be specified as environment variables and must be named entirely in upper-case.

Setting Parameter Values

You can change the parameters in 4 ways:

This scheme provides a great deal of flexibility, and a system whereby you can override one setting with another. For example, you can define your normal workspace size (maxws) in the Registry, but override it with a new value specified on the APL command line. The way this is done is described in the following section.

How APL Obtains Parameter Values

When Dyalog APL/W requires the value of a parameter, it uses the following rules.

  1. If the parameter is defined on the APL command line, this value is used.
  2. Otherwise, APL looks for an environment variable of the same name and uses this value.
  3. Otherwise, if the parameter in question is inifile, the default value of Software\Dyalog\Dyalog APL/W 17.1 Unicode (Unicode Edition) or Software\Dyalog\Dyalog APL/W 17.1 Classic (Classic Edition) is assumed.
  4. Otherwise, if the parameter in question is dyalog, the name of the directory from which the Dyalog APL program was loaded is assumed.
  5. The value of any other parameter is obtained from the registry folder defined by the value of inifile.

Note that the value of a parameter obtained by the GetEnvironment method (see GetEnvironment) uses exactly the same set of rules.

The following section details those parameters that are implemented by Registry Values in the top-level folder identified by inifile. Values that are implemented in sub-folders are mainly internal and are not described in detail here. However, any Value that is maintained via a configuration dialog box will be named and described in the documentation for that dialog box in The APL Environment.

Specifying Size-related Parameters

Several of the configuration parameters define sizes.

The value of the parameter must consist of an integer value, optionally followed immediately by a single character which denotes the units to be used. If the value contains no character the units are assumed to be KiB.

Valid values for units are:

K(KiB), M(MiB), G(GiB), T(TiB), P(PiB) and E(EiB).

Specifying an invalid value will prevent Dyalog APL from starting.

AddClassHeaders  

This parameter specifies what the Tracer displays when tracing the execution of a function in a script. If set to 1, the Tracer displays just the first line of the script and the function in question. If set to 0, the entire script is shown in the Tracer window.

APL_CODE_E_MAGNITUDE  

The introduction of decimal floating point numbers lead to the maximum allowable print precision being increased from 17 to 34, which resulted in a change in the way numbers in the range (10*17) to (10*34) in function bodies are descanned1Descanning refers to the internal process used to convert the internal representation of APL code into a character array. For numbers in function statements, this process uses the maximum value of Print Precision.. For example, the number one sextillion (1021) in a function is descanned by Version 12.1 as 1E21 and by Version 13.0 as 1000000000000000000000.

Whilst this change has no other deleterious effect, it means that code that contains such numbers is harder to read, and the result of ⎕CR (and other character representations) of the same function may have changed between Version 12.1 and later versions of Dyalog causing undesired affects in code management systems.

The APL_CODE_E_MAGNITUDE parameter allows the user to choose between the behaviour seen in Version 12.1 and earlier and in more recent behaviour. It also allows the user to specify the size of numbers above which those numbers are display in exponential format.

If the APL_CODE_E_MAGNITUDE parameter is undefined or set to 0 (the default), numbers are descanned and displayed as normal.

If APL_CODE_E_MAGNITUDE has the value -1, numbers greater than or equal to 1017 will be displayed using exponential format, as in Version 12.1.

If APL_CODE_E_MAGNITUDE has a value between 2 and 34, numbers greater than or equal to 10value will be displayed using exponential format.

The effect of setting this parameter to any other value is undefined.

APL_COMPLEX_AS_V12  

Support for Complex Numbers means that some functions produce different results from older Versions of Dyalog APL. If APL_COMPLEX_AS_V12 is set to 1 the behaviour of code developed using Version 12.1 or earlier will be unchanged; in particular:

If APL_COMPLEX_AS_V12 is set to any other value or is not set at all then code developed using version 12.1 or earlier may now generate Complex Numbers.

In addition, if APL_COMPLEX_AS_V12 is set to 1, objects containing complex numbers cannot be transferred to or from component files, TCP/IP (CONGA), or auxiliary processors and may not be used as an argument to Serialise/Deserialise Array (220⌶). Instead, a DOMAIN ERROR will be issued.

Note that this feature is provided to simplify the transition of older code to currently supported Versions of Dyalog APL. It does not prevent the generation and use of Complex Numbers using newer features (such as explicitly specifying a Complex Number literal), and the intention is that it will be removed in a future release of Dyalog APL.

APL_FCREATE_PROPS_C  

This parameter specifies the default checksum level for newly-created component files. If unspecified, the default checksum level is 1.

APL_FCREATE_PROPS_J  

This parameter specifies the default journaling level for newly-created component files. If unspecified, the default journaling level is 1.

APL_FAST_FCHK  

This parameter specifies whether Dyalog APL should optimise ⎕FCHK by allowing it to reliably determine whether a component file had been properly untied and therefore does not need to be checked (this is overridable using the ⎕FCHK option 'force').

Optimising ⎕FCHK in this way has a performance impact on ⎕FUNTIE and it is recommended this optimisation is switched off if your application frequently ties and unties files. 

Note: this only affects component files with journaling enabled. 

The values of the parameter are:

0 Do not optimise ⎕FCHK (optimise ⎕FUNTIE instead)
1 Optimise ⎕FCHK

The default value of the parameter is 0 on all platfroms. On Windows, setting the value 1 has no effect.

APL_MAX_THREADS  

Specifies the maximum number of system threads that are to be used for parallel execution. The default is 1 and the maximum value is 64.

AplCoreName  

This parameter specifies the directory and name of the file in which aplcore should be saved. The optional wild-card character (*) is replaced by a number when the file is written. If there is more than one "*" in AplCoreName, the string is used as is; no substitution is made. See MaxAplCores

Note that APL terminates with an exit code of 3 when an aplcore file is generated.

aplk (Classic Edition Only)

This parameter specifies the name of your Input Translate Table, which defines your keyboard layout. The keyboard combo in the Configure dialog box displays all the files with the .DIN extension in the APLKEYS sub-directory. You may choose any one of the supplied tables, and you may add your own to the directory. Note that the FILE.DIN table is intended for input from file, and should not normally be chosen as a keyboard table.

aplkeys (Classic Edition Only)

This parameter specifies a search path for the Input Translate Table and is useful for configuring a run-time application. The directory paths are specified using Operating System specific conventions and separated by ";" (Windows) or ":" (UNIX). Its default value is the aplkeys sub-directory of the directory in which Dyalog APL/W is installed (defined by dyalog).

aplnid  

Under Windows, this parameter specifies the user number that is used by the component file system to control file sharing and security. If you wish to share component files and/or external variables in a network it is essential that each user has a unique aplnid parameter. It may be any integer in the range 0 to 65535. Note that an aplnid value of 0 causes the user to bypass APL's access control matrix mechanism.

Under UNIX, the user number is obtained from the Operating System (UID) and aplnid is not used. If the user is "root", APL's access control mechanism is ignored.

When a user creates a component file, his user number is recorded in the file to identify him as its owner.

aplt  

This parameter specifies the name of the Output Translate Table. On Windows the default is WIN.DOT and there is rarely a need to alter it.

apltrans  

This parameter specifies a search path for the Output Translate Table and is useful for configuring a run-time application. The directory paths are specified using Operating System specific conventions and separated by ";" (Windows) or ":" (UNIX). Its default value is the sub-directory apltrans in the directory in which Dyalog APL/W is installed.

auto_pw  

This parameter specifies whether or not the value of ⎕PW is derived automatically from the current width of the Session Window. If auto_pw is 1, the value of ⎕PW changes whenever the Session Window is resized and reflects the number of characters that can be displayed on a single line. If auto_pw is 0 (the default) ⎕PW is independent of the Session Window size.

AutoDPI  

This parameter determines whether or not the Dyalog program registers the application as DPI-Aware when it initialises. If 1, (the default), Dyalog performs the auto-scaling; if 0, scaling is the responsibility of the programmer or operating system.

AutoFormat  

This parameter specifies whether or not you want automatic formatting of Control Structures in functions. The default value is 1 which means that formatting is done automatically for you when a function is opened for editing or converted to text by ⎕CR, ⎕NR and ⎕VR. Automatic formatting first discards all leading spaces in the function body. It then prefixes all lines with a single space except those beginning with a label or a comment symbol (this has the effect of making labels and comments stand out). The third step is to indent Control Structures. The size of the indent depends upon the TabStops parameter. To turn off automatic formatting, set AutoFormat to 0.

AutoIndent  

This parameter specifies whether or not you want semi-automatic indenting during editing. The default value is 1. This means that when you enter a new line in a function, it is automatically indented by the same amount as the previous line. This option simplifies the entry of indented Control Structures.

CFEXT  

This parameter specifies component file filename extensions.

CFEXT is a string that specifies a colon-separated list of one or more extensions, including any period (".") which separates the extension from its basename.

If undefined, CFEXT defaults to .dcf: on Windows and OS X, and .dcf:.DCF: on all other platforms.

In the Windows case, this means that 'myfile'⎕FTIE 0 will search first for a file named myfile.dcf, and then for a file named myfile (with no extension). As file names are not case-sensitive under Windows, this will find myfile.DCF or MyFile.Dcf and so forth. If none are found with this extension, it will load myfile, MyFile, MYFILE etc.

In the second (non-Windows) case note that 'myfile'⎕FTIE 0 will search first for a file named myfile, then myfile.dcf, then myfile.DCF.

ClassicMode  

This parameter specifies whether or not the Session operates in Dyalog Classic mode. The default is 0. If this parameter is set to 1, the Editor and Tracer behave in a manner that is consistent with earlier versions of Dyalog APL.

ClassicModeSavePosition  

This parameter specifies whether or not the current size and location of the first of the editor and tracer windows are remembered for next time. It applies only when Classic Mode is enabled.

The size and location of the windows are saved in the registry in the subfolder WindowRects/EditWindow and TraceWindow.

CMD_PREFIX and CMD_POSTFIX  

These parameters defines strings within which operating system commands specified as the arguments to ⎕CMD and ⎕SH, and )CMD and )SH, are wrapped. Its purpose is to run the command arguments under a non-standard command shell. This applies to Windows only.

See Windows Command for implementation details.

confirm_abort  

This parameter specifies whether or not you will be prompted for confirmation when you attempt to abort an edit session after making changes to the object being edited. Its value is either 1 (confirmation is required) or 0. The default is 0.

confirm_close  

This parameter specifies whether or not you will be prompted for confirmation when you close an edit window after making changes to the object being edited. Its value is either 1 (confirmation is required) or 0. The default is 0.

confirm_fix  

This parameter specifies whether or not you will be prompted for confirmation when you attempt to fix an object in the workspace after making changes in the editor. Its value is either 1 (confirmation is required) or 0. The default is 0.

confirm_session_delete  

This parameter specifies whether or not you will be prompted for confirmation when you attempt to delete lines from the Session Log. Its value is either 1 (confirmation is required) or 0. The default is 1.

default_div  

This parameter specifies the value of ⎕DIV in a clear workspace. Its default value is 0.

default_io  

This parameter specifies the value of ⎕IO in a clear workspace. Its default value is 1.

default_ml  

This parameter specifies the value of ⎕ML in a clear workspace. Its default value is 1.

default_pp  

This parameter specifies the value of ⎕PP in a clear workspace. Its default value is 10.

default_pw  

This parameter specifies the value of ⎕PW in a clear workspace. Note that ⎕PW is a property of the Session and the value of default_pw is overridden when a Session file is loaded.

default_rtl  

This parameter specifies the value of ⎕RTL in a clear workspace. Its default value is 0.

default_wx  

This parameter specifies the value of ⎕WX in a clear workspace. This in turn determines whether or not the names of properties, methods and events of GUI objects are exposed. If set (⎕WX is 1), you may query/set properties and invoke methods directly as if they were variables and functions respectively. As a consequence, these names may not be used for global variables in GUI objects.

DMXOUTPUTONERROR  

This parameter specifies in which windows DMX error messages are displayed. It is an integer whose value is the sum of the specified windows where 1 = Status Window and 2 = Session Window.

DockableEditWindows  

This parameter specifies whether or not individual edit windows can be undocked from (and docked back into) the (MDI) Editor window. Its default value is 0. This parameter does not apply if ClassicMode is set to 1.

DoubleClickEdit  

This parameter specifies whether or not double-clicking over a name invokes the editor. Its default is 1. If DoubleClickEdit is set to 0, double-clicking selects a word and triple-clicking selects the entire line.

dyalog  

This parameter specifies the name of the directory in which Dyalog APL is installed.

DyalogEmailAddress  

This parameter specifies the contact email address for Dyalog Limited.

DYALOG_EVENTLOGGINGLEVEL  

This parameter applies under Windows only, and specifies whether a log entry is written to the Windows Event Log or not when Dyalog APL would pop up a message box due to an unexpected termination of Dyalog APL. See Handling Unexpected Application Errors in Windows for more information.

DYALOG_EVENTLOGNAME  

This parameter applies under Windows only, and is either the name of the event log to which an event message will be written, or the source of the event message (depending on the registry entries which may or may not have been defined) when Dyalog APL would pop up a message box due to an unexpected termination of Dyalog APL. See Handling Unexpected Application Errors in Windows for more information.

DyalogHelpDir  

This parameter specifies the full pathname of the directory that contains the Dyalog APL help file (dyalog.chm).

DyalogInstallDir  

This parameter specifies the full pathname of the directory in which Dyalog APL is installed.

DYALOG_NOPOPUPS  

This parameter specifies whether a MsgBox will appear (0, the default) or will not (1) when Dyalog APL terminates unexpectedly. This applies to APL on Windows only. See Handling Unexpected Application Errors in Windows for more information.

DYALOG_PIXEL_TYPE  

When the Coord property is set to 'Pixel', this parameter specifies how it is interpreted. If the value of DYALOG_PIXEL_TYPE is RealPixel or if DYALOG_PIXEL_TYPE is undefined, the object behaves as if Coord was 'RealPixel'. If the value of DYALOG_PIXEL_TYPE is ScaledPixel, the object behaves as if Coord were 'ScaledPixel'.See Coord.

DYALOG_SERIAL  

This parameter contains your Dyalog serial number. This must be set to the serial number issued to you. If not set, then the software is unregistered.

For the full licence terms and conditions, see https://www.dyalog.com/uploads/documents/terms_and_conditions.pdf.

DyalogWebSite  

This parameter specifies the URL for the Dyalog web site.

edit_cols, edit_rows  

These parameters specify the initial size of an edit window in character units.

edit_first_x, edit_first_y  

These parameters specify the initial position on the screen of the first edit window in character units. Subsequent edit windows will be staggered. These parameters only apply if ClassicMode is 1.

edit_offset_x, edit_offset_y  

These parameters specify the amount by which an edit window is staggered from the previous one.

ErrorOnExternalException  

This parameter specifies the behaviour when a System Exception occurs in an external DLL. If this parameter is set to 1, and an exception occurs in a call on an external DLL. APL generates an EXTERNAL DLL EXCEPTION error (91), instead of terminating with a System Error. This error may be trapped.

EditorState  

This is an internal parameter that remembers the state of the last edit window (normal or maximised). This is used to create the next edit window in the appropriate state.

ENABLE_CEF  

This parameter is a Boolean value with a default value of 1. If set to 0, it disables the Chromium Embedded Framework (CEF). and at attempt to create an HTMLRenderer object will fail with an error meessage.

ExternalHelpURL  

If UseExternalHelpURL is 1, Dyalog attempts to use the Microsoft Document Explorer and online help, for example from Visual Studio (if installed), to display help for external objects, such as .Net Types. This parameter specifies the URL to be used. In most cases the default setting of "ms-help://ms.mscc.v80" will be sufficient. On some configurations it may be necessary to change this. See UseExternalHelpURL

greet_bitmap  

This parameter specifies the filename of a bitmap to be displayed during initialisation of the Dyalog APL application. It is used typically to display a product logo from a runtime application. The bitmap will remain until either an error occurs, or it is removed using the GreetBitmap method of the Root object.

greet_bitmap=c:\myapp\logo.bmp
history_size  

This parameter specifies the size of the buffer used to store previously entered (input) lines in the Session. See Specifying Size-related Parameters for further details about defining a valid value for this parameter. The maximum value is 2Gb.

inifile  

This parameter specifies the name of the Windows Registry folder that contains the configuration parameters described in this section. For example,

INIFILE=Software\Dyalog\mysettings
InitialKeyboardLayout (Unicode Edition Only)

This parameter specifies the name of the keyboard to be selected on startup. When you start an APL session, this layout will automatically be selected as the current keyboard layout if the value of InitialKeyboardLayoutInUse is 1.

InitialKeyboardLayoutInUse (Unicode Edition Only)

This Boolean parameter specifies whether or not the keyboard specified by InitialKeyboardLayout is selected as the current keyboard layout when you start an APL session.

InitialKeyboardLayoutShowAll (Unicode Edition Only)

This Boolean parameter specifies whether or not all installed keyboards are listed in the choice of keyboards in the Configuration dialog box (Unicode Input tab).

input_size  

This parameter specifies the size of the buffer used to store marked lines (lines awaiting execution) in the Session. See Specifying Size-related Parameters for further details about defining a valid value for this parameter.

KeyboardInputDelay  

This parameter specifies the delay (in milliseconds) before the system reacts to a user keystroke by:

lines_on_functions  

This parameter specifies whether or not line numbers are displayed in edit and trace windows. It is either 0 (the default) or 1.

Note that this parameter determines your overall preference for line numbering, and this setting persists between APL sessions. You can however still toggle line numbering on and off dynamically as required by clicking Line Numbers in the Options menu on the Session Window. These temporary settings are not saved between APL sessions

localdyalogdir  

This parameter specifies the name of the directory in which Dyalog APL/W is installed on the client, in a client/server installation

log_file  

This parameter specifies the pathname to the Session log file; it can be absolute or relative to the working directory.

log_file_inuse  

This parameter specifies whether or not the Session log is saved in a session log file.

log_size  

This parameter specifies the size of the Session log buffer. See Specifying Size-related Parameters for further details about defining a valid value for this parameter. The maximum value is 2Gb.

mapchars (Classic Edition Only)

In previous versions of Dyalog APL, certain pairs of characters in ⎕AV were mapped to a single font glyph through the output translate table. For example, the ASCII pipe ¦ and the APL style | were both mapped to the APL style |. From Version 7.0 onwards, it has been a requirement that the mapping between ⎕AV and the font is strictly one-to-one (this is a consequence of the new native file system). Originally, the mapping of the ASCII pipe and the APL style, the APL and ASCII quotes, and the ASCII ^ and the APL ^ were hard-coded. The mapping is defined by the mapchars parameter.

 

mapchars is a string containing pairs of hexadecimal values which refer to 0-origin indices in ⎕AV. The first character in each pair is mapped to the second on output. The default value of mapchars is DB0DEBA7EEC00BE0 which defines the following mappings.

From To
Hex Decimal Symbol Hex Decimal Symbol
DB 219 0D 13 '
EB 235 ^ A7 167 ^
EE 238 C0 192 |
0B 11 . E0 224 .

To clear all mappings, set MAPCHARS=0000.

MaxAplCores  

This parameter is used in conjunction with the AplCoreName parameter to control the maximum number of aplcore files that are saved. It applies when the string specified by AplCoreName ends with an asterisk (*). If so, when saving an aplcore file, Dyalog performs the following steps:

  1. Identifies the highest number ending of those files that match the directory/name pattern specified by AplCoreName. If none, assume 0.
  2. Increments that number, then saves the aplcore in a new file ending with the new number.
  3. If necessary, deletes lower-numbered files to retain only the maximum number of files specified by MaxAplCores.

See also: AplCoreName.

maxws  

This parameter determines your workspace size and is the amount of memory allocated to the workspace at APL start-up. MAXWS. See Specifying Size-related Parameters for further details about defining a valid value for this parameter.

The default value is 256M (256MiB), with the exception of the Raspberry Pi where the default is 64M. Values less than 4M are ignored, and the maximum value is 15E.

For example, to get a 4GiB workspace, set:

        MAXWS=4G

Dyalog APL places no implicit restriction on workspace size, and the virtual memory capability of the underlying operating system allows you to access more memory than you have physically installed. However if you use a workspace that greatly exceeds your physical memory you will encounter excessive paging and your APL programs will run slowly. You may also cause the system to crash.

Note that the memory used for the workspace must be contiguous.

32-bit versions of Dyalog APL are typically limited to between 1.3GiB to 1.9GiB under Windows, and 1.9GiB under UNIX. These are operating system limitations imposed on 32-bit processes rather than ones imposed by Dyalog APL, and are affected by the number and size of DLLs/shared libraries that are loaded into the process space.

64-bit versions of Dyalog APL have no such limitations; Dyalog has used workspaces of 96GiB on various platforms.

OverstrikesPopup (Unicode Edition Only)

This is a Boolean parameter that specifies whether or not the Overstrikes popup is enabled.

PassExceptionsToOpSys  

This is a Boolean parameter that specifies the default state of the Pass Exception check box in the System Error dialog box. See Handling Unexpected Application Errors in Windows for more information.

pfkey_size  

This parameter specifies the size of the buffer that is used to store programmable function key definitions. See Examples. See Specifying Size-related Parameters for further details about defining a valid value for this parameter.

ProgramFolder  

This parameter specifies the name of the folder in which the Dyalog APL program icons are installed.

PropertyExposeRoot  

Each workspace contains a flag that specifies whether or not the names of Properties, Methods and Events of the Root object are exposed. If set, you may query/set the Properties of Root and invoke the Root Methods directly as if they were variables and functions respectively. As a consequence, these names may not be used for global variables in your workspace. This parameter determines the default value of the flag in a CLEAR WS.

PropertyExposeSE  

Each workspace contains a flag that specifies whether or the names of Properties, Methods and Events of the Session object are exposed. If set, you may query/set the Properties of ⎕SE and invoke ⎕SE Methods directly as if they were variables and functions respectively. As a consequence, these names may not be used for global variables in the ⎕SE namespace. This parameter determines the default value of the flag in a CLEAR WS.

qcmd_timeout  

This parameter specifies the length of time in milliseconds that APL will wait for the execution of a Windows command to start. Its default value is 5000 milliseconds.

ResolveOverstrikes (Unicode Edition Only)

Specifies whether or not the user may enter an APL composite symbol using overstrikes.

RIDE_INIT  

This parameter determines how the interpreter should behave with respect to the RIDE protocol. Setting this configuration parameter on the machine that hosts the interpreter enables the interpreter-RIDE connection.

The format of the value is:

 <setting> : <address> : <port>

setting is the action the interpreter should take. Valid values, which are case-insensitive, are as follows:

address is the machine on which to listen for a connection (if setting is serve) or connect to (if setting is connect/poll). Valid values are:

port is the TCP port to listen on

The RIDE_INIT configuration parameter is set automatically when launching a new Dyalog Session from the RIDE.

RIDE_SPAWNED  

If non-zero, this parameter disables ⎕SR and )SH which instead generate DOMAIN ERROR. This parameter is used to prevent certain user-interfaces from being executed from a RIDE session which does not support them, and which would otherwise cause the RIDE session to become unresponsive. See RIDE Reference Guide.

RunAsService  

When RunAsService is set to 1 or 2 (the default is 0) Dyalog APL will not prompt for confirmation when the user logs off, and the interpreter will continue to run across the logoff /logon process. The value 2 reduces the resources used by a Dyalog service by disabling the graphical user-interface features. In this mode, ⎕WC object will fail with a LIMIT ERROR unles the object is Timer, which is the only one that remains enabled.

SaveContinueOnExit  

Specifies whether or not your current workspace is saved as CONTINUE.DWS before APL terminates.

SaveLogOnExit  

Specifies whether or not your Session log is saved before APL terminates.

SaveSessionOnExit  

Specifies whether or not your current Session is saved in your Session file before APL terminates.

Serial  

Legacy: Specifies your Dyalog APL/W Serial Number. See DYALOG_SERIAL which supercedes it..

session_file  

This parameter specifies the name of the file from which the APL session (⎕SE) is to be loaded when APL starts. If not specified, a .dse extension is assumed. This session file contains the ⎕SE object that was last saved in it. This object defines the appearance and behaviour of the Session menu bar, tool bar(s) and status bar, together with any functions and variables stored in the ⎕SE namespace.

SessionOnTop  

Specifies whether or not the Session may appear on top of Edit and Trace Windows in Classic Dyalog mode. See ClassicMode.

ShowStatusOnError  

Specifies whether or not the Status window is automatically displayed (if required) when APL attempts to write output to it.

SingleTrace  

Specifies whether there is a single Trace window, or one Trace window per function. This applies only if ClassicMode is 1.

SkipBlankLines  

This parameter causes the Tracer to automatically skip lines that contain no executable statement (i.e. blank lines and comment lines), with the exception of the first line in the function, and in the case of a traditional function (not a dfn), the last line if it is a comment. If SkipBlankLines is 1, the Tracer skips blank lines. If SkipBlankLines is 2, the Tracer skips comment lines. If SkipBlankLines is 3, the Tracer skips both blank lines and comment lines.

StatusOnEdit  

Specifies whether or not a status bar is displayed at the bottom of an Edit window.

sm_cols, sm_rows  

These parameters specify the size of the window used to display ⎕SM when it is used stand-alone. They are not used if the window is specified using the SM object.

TabStops  

This parameter specifies the number of spaces inserted by pressing the Tab key in the editor. Its default value is 4.

trace_cols, trace_rows  

These parameters specify the initial size of a trace window in character units.

trace_first_x, trace_first_y  

These parameters specify the initial position on the screen of the first trace window in character units. Subsequent trace windows will be staggered. This applies only if ClassicMode is 1.

trace_offset_x, trace_offset_y  

These parameters specify the amount by which a trace window is staggered from the previous one. These apply only if ClassicMode is 1 and SingleTrace is 0.

Trace_level_warn  

This parameter specifies the maximum number of Trace windows that will be displayed when an error occurs and Trace_on_error is set to 1.  If there are a large number of functions in the state indicator, the display of their Trace windows may take several seconds. This parameter allows you to restrict the potential delay to a reasonable value and its default is 16. If the number of Trace windows would exceed this number, the system instead displays a warning message box. This parameter is ignored if you invoke the Tracer explicitly. This parameter applies only if ClassicMode is 1 and SingleTrace is 0.

Trace_on_error  

This parameter is either 0 (the default) or 1. If set to 1, Trace_on_error specifies that the Tracer is automatically deployed when execution of a defined function halts with an error. A stack of Trace windows is immediately displayed, with the top Trace window receiving the input focus.

TraceStopMonitor  

This parameter specifies which of the ⎕TRACE (1), ⎕STOP (2) and ⎕MONITOR (4) columns are displayed in Trace and Edit windows. Its value is the sum of the corresponding values.

UnicodeToClipboard (Classic Edition only)

This parameter specifies whether or not text that is transferred to and from the Windows clipboard is treated as Unicode text. If UnicodeToClipboard is 0 (the default), the symbols in ⎕AV are mapped to ASCII text (0-255). In particular, the APL symbols are mapped to ASCII symbols according to their positions in the Dyalog APL font. If UnicodeToClipboard is 1, the symbols in ⎕AV are mapped to Unicode text and the APL symbols are mapped to their genuine Unicode equivalent values.

UseExternalHelpURL  

This parameter specifies whether or not Dyalog attempts to use the Microsoft Document Explorer and online help to display help for external objects, such as .Net Types. See ExternalHelpURL.

WantsSpecialKeys (Unicode Edition Only)

This parameter specifies a list of applications (e.g. putty.exe) that use the command strings in the Input Translate Tables.

WrapSearch  

This parameter specifies whether or not Search/Replace in the Editor stops at the bottom or top of the text (depending upon the direction of the search), or continues the search from the start or end as appropriate.

WSEXT  

This parameter specifies workspace filename extensions. It complements the WSPATH parameter in that together they determine the file search order to satisfy )LOAD or )COPY; it also specifies the filename extension to add on )SAVE or )CONTINUE if none is explicitly provided.

WSEXT is a string that specifies a colon-separated list of one or more extensions, including any period (".") which separates the extension from its basename.

If undefined, WSEXT defaults to .dws: on Windows and OS X, and :.dws:.DWS on all other platforms.

In the Windows case, this means that )LOAD myws will search first for a file named myws.dws, and then for a file named myws (with no extension). As file names are not case-sensitive under Windows, this will find myws.DWS or MyWs.Dws and so forth. If none are found with this extension, it will load myws, MyWs, MYWS etc.

In the second (non-Windows) case note that )LOAD myws will search first for a file named myws, then myws.dws, then myws.DWS.

WSPATH  

This parameter defines the workspace path. This is a list of directories that are searched in the order specified when you )LOAD or )COPY a workspace and when you start an Auxiliary Processor. The directory paths are specified using Operating System specific conventions and separated by ";" (Windows) or ":" (UNIX).

The following Windows example causes )COPY, )LOAD and )LIB to look first in the current directory, then in D:\MYWS, and then in the (normal) installation workspace directory.

WSPATH=.;D:\MYWS;C:\Program Files\Dyalog\Dyalog APL 14.1 Unicode\ws
XPLookAndFeel  

This Boolean parameter specifies whether or not Native Look and Feel is used. This affects the appearance of user-interface controls such as Buttons. The default is 1. See The Configuration Dialog Box.

yy_window  

This parameter defines how Dyalog APL is to interpret a 2-digit year number. If yy_window is not set (the default) then under Windows, Version 13.2 onwards will adhere to the rules specified in the Windows Region and Language 2-digit year settings.

Dyalog allows a choice of input date formats for ⎕SM and GUI edit fields. If you have chosen a 2-digit year format such as MM/DD/YY, then an input of 02/01/00 will by default be interpreted as 1st February 1900 - not 1st February 2000.

If your application uses a 4-digit year format such as YYYY-MM-DD, the problem will not arise.

You can use the yy_window parameter to cause your application to interpret 2-digit dates in as required without changing any APL code.

Sliding versus Fixed Window

Two schemes are in common use within the industry: Sliding or Fixed date windows.

Use a Fixed window if there is a specific year, for example 1970, before which, dates are meaningless to your application. Note that with a fixed window, this date (say 1970) will still be the limit if your application is running in a hundred years' time.

Use a Sliding window if there is a time period, for example 30 years, before which dates are considered too old for your application. With a sliding window, you will always be able to enter dates up to (say) 30 years old, but after a while, specific years in the past (for example 1970) will become inaccessible.

Setting a Fixed Window

To make a fixed window, set parameter yy_window to the 4-DIGIT year which is the earliest acceptable date. For example:

YY_WINDOW=1970

This will cause the interpreter to convert any 2-digit input date into a year in the range 1970, 1971 ... 2069

Setting a Sliding Window

To make a sliding window, set parameter yy_window to the 1- or 2-DIGIT year which determines the oldest acceptable date. This will typically be negative.

YY_WINDOW=-30

 

Conversion of dates now depends on the current year:

If the current year is 1999, the earliest accepted date is 1999-30 = 1969.

This will cause the interpreter to convert any 2-digit input date into a year in the range 1969, 1970 ... 2068.

However if your application is still running in the year 2010, the earliest accepted date then will be 2010-30 = 1980. So in the year 2010, a 2-digit year will be interpreted in the range 1980, 1981 ... 2079.

Advanced Settings

You can further restrict date windows by setting an upper as well as lower year limit.

YY_WINDOW=1970,1999

This causes 2-digit years to be converted only into the range 1970, 1971 ... 1999. Any 2-digit year (for example, 54) not convertible to a year in this range will cause a DOMAIN ERROR.

The sliding window equivalent is:

YY_WINDOW=-10,10

This would establish a valid date window, ten years either side of the current year. For example, if the current year is 1998, the valid range would be (1998-10) – (1998+10), in other words: 1988, 1989, 2008.

One way of looking at the yy_window variable is that it specifies a 2-element vector. If you supply only the first element, the second one defaults to the first element + 99.

Note that the system uses only the number of digits in the year specification to determine whether it refers to a fixed (4-digits) or sliding (1-, or 2-digits) window. In fact you can have a fixed lower limit and a sliding upper limit, or vice versa.

YY_WINDOW=1990,10

Allows dates as early as 1990, but not more than 10 years hence.

YY_WINDOW=0,1999

Allows dates from the current year to the end of the century.

If the second date is before, or more than 99 years after the first date, then any date conversion will result in a DOMAIN ERROR. This might be useful in an application where the end-user has control over the input date format and you want to disallow any 2-digit date input.

YY_WINDOW=1,0